<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  

<script>
  // 1. 使用setTimeout
  // setTimeout(() => {
  //   console.log("Hello World")
  // }, 1000)

  // 2. 使用Promise
  // new Promise(函数(resolve, reject)) resolve和reject又是两个函数
  // new Promise((resolve, reject) => {
  //   // 第一次网络请求
  //   setTimeout(() => {
  //     // 调用then()
  //     resolve()
  //   }, 1000)
      
  // }).then(() => {
  //   // 第一次处理代码
  //   console.log("Hello World1")
  //   console.log("Hello World2")
  //   console.log("Hello World3")

  //   return new Promise((resolve, reject) => {
  //     // 第二次网络请求
  //     setTimeout(() => {
  //       resolve()
  //     }, 1000)
  //   }).then(() => {
  //     // 第二次处理代码
  //     console.log("Hello Vue1")
  //     console.log("Hello Vue2")
  //     console.log("Hello Vue3")
      
  //     return new Promise((resolve, reject) => {
  //       // 第三次网络请求
  //       setTimeout(() => {
  //         resolve()
  //       }, 1000)
  //     }).then(() => {
  //       // 第三次处理代码
  //       console.log("Hello Python1")
  //       console.log("Hello Python2")
  //       console.log("Hello Python3")
  //     })
  //   })
  // })

  // 什么情况下会使用到Promise?
  // 一般情况下是有异步操作时，使用Promise对异步操作进行封装
  // new Promise() -> 构造函数(1.保存状态信息 2. 执行传入函数) -> 执行传入回调函数时，会传入两个参数resolve+reject本身又是函数
  // new Promise()
</script>


</body>
</html>